﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using LCTMoodle.Models.ViewModels;

namespace LCTMoodle.Service
{
    public class KhoaHoc_NhomQuyenService : Service
    {
        /// <summary>
        /// Xóa khóa học - nhóm quyền
        /// </summary>
        /// <param name="maKhoaHoc">Mã khóa học</param>
        /// <param name="maNhomQuyen">Mã nhóm quyền</param>
        public static bool xoaKhoaHocNhomQuyenTheoMaKhoaHocVaMaNhomQuyen(int maKhoaHoc, int maNhomQuyen)
        {
            return executeNonQuery
                (
                    "xoaKhoaHocNhomQuyenTheoMaKhoaHocVaMaNhomQuyen",
                    new object[]
                    {
                        maKhoaHoc,
                        maNhomQuyen
                    }
                );
        }

        /// <summary>
        /// Thêm khóa học - nhóm quyền
        /// </summary>
        /// <param name="maKhoaHoc">Mã khóa học</param>
        /// <param name="tenNhomQuyen">Tên nhóm quyền</param>
        public static int themKhoaHocNhomQuyen(int maKhoaHoc, string tenNhomQuyen)
        {
            return executeScalar<int>
                (
                    "themKhoaHocNhomQuyen",
                    new object[]
                    {
                        maKhoaHoc,
                        tenNhomQuyen
                    }
                );
        }

        /// <summary>
        /// Cập nhật thêm hoặc xóa quyền của nhóm quyền
        /// </summary>
        /// <param name="maKhoaHoc">Mã khóa học</param>
        /// <param name="maNhomQuyen">Mã nhóm quyền</param>
        /// <param name="maQuyen">Mã quyền</param>
        /// <param name="them">true nếu thêm, false nếu xóa</param>
        public static bool capNhatThemXoaQuyenTheoMaKhoaHocVaMaNhomQuyen(int maKhoaHoc, int maNhomQuyen, int maQuyen, bool them)
        {
            //Chưa sửa
            return executeNonQuery
                (
                    "capNhatThemXoaQuyenTheoMaKhoaHocVaMaNhomQuyen",
                    new object[] 
                    {
                        maNhomQuyen,
                        maQuyen,
                        them
                    }
                );
        }
        /// <summary>
        /// Lấy khóa học - nhóm quyền theo mã khóa học
        /// </summary>
        /// <param name="maKhoaHoc">Mã khóa học</param>
        public static List<NhomQuyenViewModel> layKhoaHocNhomQuyenTheoMaKhoaHoc(int maKhoaHoc)
        {
            return executeDataReader_List<NhomQuyenViewModel>
                (
                    "layKhoaHocNhomQuyenTheoMaKhoaHoc",
                    new object[] 
                    {
                        maKhoaHoc
                    }
                );
        }

        /// <summary>
        /// Lấy chuỗi mã quyền của mã nhóm quyền
        /// </summary>
        /// <param name="maKhoaHoc">Mã khóa học</param>
        /// <param name="maNhomQuyen">Mã nhóm quyền</param>
        public static string layChuoiMaQuyenTheoMaKhoaHocVaMaNhomQuyen(int maKhoaHoc, int maNhomQuyen)
        {
            //Chưa sửa
            return executeScalar<string>
                (
                    "layChuoiMaQuyenTheoMaKhoaHocVaMaNhomQuyen",
                    new object[] 
                    {
                        maNhomQuyen
                    }
                );
        }

        /// <summary>
        /// Thêm thành viên vào nhóm quyền
        /// </summary>
        /// <param name="maKhoaHoc">Mã khóa học</param>
        /// <param name="maNhomQuyen">Mã nhóm quyền</param>
        /// <param name="maThanhVien">Mã thành viên</param>
        public static bool capNhatKhoaHocNhomQuyenTheoMaKhoaHocVaMaNhomQuyenVaMaThanhVien_ThemThanhVienVaoNhomQuyen(int maKhoaHoc, int maNhomQuyen, int maThanhVien)
        {
            return executeNonQuery
                (
                    "capNhatKhoaHocNhomQuyenTheoMaKhoaHocVaMaNhomQuyenVaMaThanhVien_ThemThanhVienVaoNhomQuyen",
                    new object[]
                    {
                        maKhoaHoc,
                        maNhomQuyen,
                        maThanhVien
                    }
                );
        }

        /// <summary>
        /// Xóa thành viên khỏi nhóm quyền
        /// </summary>
        /// <param name="maKhoaHoc">Mã khóa học</param>
        /// <param name="maNhomQuyen">Mã nhóm quyền</param>
        /// <param name="maThanhVien">Mã thành viên</param>
        public static bool capNhatKhoaHocNhomQuyenTheoMaKhoaHocVaMaNhomQuyenVaMaThanhVien_XoaThanhVienKhoiNhomQuyen(int maKhoaHoc, int maNhomQuyen, int maThanhVien)
        {
            return executeNonQuery
                (
                    "capNhatKhoaHocNhomQuyenTheoMaKhoaHocVaMaNhomQuyenVaMaThanhVien_XoaThanhVienKhoiNhomQuyen",
                    new object[]
                    {
                        maKhoaHoc,
                        maNhomQuyen,
                        maThanhVien
                    }
                );
        }
    }
}